/*
 * Copyright 2012 Claude Houle claude.houle@gmail.com
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.google.code.mochaccino.framework.smtp.client;

import com.google.common.base.Preconditions;

public class MessageHeader {
	/** The Value */
	private StringBuilder value = new StringBuilder();

	/** The Name */
	private String name;

	/** Constructor */
	protected MessageHeader( String name ) {
		this.name = Preconditions.checkNotNull( name );
	}

	/** The Header. */
	protected MessageHeader( String name, String value ) {
		this.name = Preconditions.checkNotNull( name );
		this.append( Preconditions.checkNotNull( value ) );
	}

	/** Append to value */
	public void append( String value ) {
		this.value.append( Preconditions.checkNotNull( value ) );
	}

	/** Get Name */
	public String getName() {
		return name;
	}

	/** Set Value */
	public void set( String value ) {
		this.value.setLength( 0 );
		if ( value != null ) {
			this.value.append( value );
		}
	}

	/** The length of the value */
	public int size() {
		return value.length();
	}

	/** To String */
	public String toString() {
		StringBuilder b = new StringBuilder();
		b.append( getName() );
		b.append( ": " );
		b.append( getValue() );
		return b.toString();
	}

	/** Return the Value */
	public String getValue() {
		return value.toString();
	}
}
